﻿using System;
using System.Collections.Generic;

namespace Abs.Core.DAL
{
    internal abstract class Repository<T> : IDisposable, ICreate<T>, ISelect<T>, IUpdate<T>, IDelete
    {
        //Constant Value
        internal const int NoChanges = 0;

        internal Repository()
        {
        }//end of internal Repository

        //CRUD Methods
        public abstract bool Create(T item);
        public abstract IList<T> SelectAll();
        public abstract T Select(object[] id);
        public abstract bool Update(T item);
        public abstract bool Delete(object[] id);

        public abstract void Dispose();
        
    }//end of internal abstract class Repository
}//end of namespace